'use strict';
const path = require('path');
module.exports = appInfo => {
  const config = (exports = {});

  config.root = path.join(__dirname, '../app');

  // 部署时需要用到
  // config.cluster = {
  //   listen: {
  //     port: 7001,
  //     hostname: '127.0.0.1',
  //   }
  // }

  //有后天配置权限的工号
  config.adminUser = [948466, 157527];

  //请求限制，上传资源限制
  config.bodyParser = {
    formLimit: '2mb',
    jsonLimit: '2mb'
  };

  //日志配置
  config.logger = {
    consoleLevel: 'DEBUG'
  };

  config.site = {
    description: '华渔教育业务对外传播资源平台',
    keyword: '华渔教育业务对外传播资源平台,华渔，华渔教育',
    title: '华渔教育业务对外传播资源平台'
  };

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1512366927656_3634';

  // add your config here
  config.middleware = ['filter'];

  //过滤器配置
  config.filter = {};

  // 添加 view 配置
  config.view = {
    defaultViewEngine: 'react',
    mapping: {
      '.html': 'nunjucks',
      '.js': 'react'
    }
  };

  //新闻配置
  config.news = {
    pageSize: 5,
    serverUrl: 'https://hacker-news.firebaseio.com/v0'
  };

  //jsonp配置
  // config.jsonp = {
  //   whiteList: [''],
  //   // csrf: true,
  //   callback: 'callback', // 识别 query 中的 `callback` 参数
  //   limit: 100, // 函数名最长为 100 个字符
  // };

  //数据库配置
  config.sequelize = {
    dialect: 'mysql', // support: mysql, mariadb, postgres, mssql
    database: 'hy_edu_resource',
    host: 'localhost',
    port: '3306',
    username: 'root',
    password: 'admin',
    timezone: '+08:00'
  };

  //url配置前缀配置
  config.prefix = {
    API_PREFIX: 'https://aqapi.101.com/v0.93/', // 101UC 生产环境接口前缀
    AVATAR_PREFIX: 'http://cs.101.com/v0.1/static/cscommon/avatar/' // 101UC 头像前缀
    // DNSPOD_LOGIN_TOKEN: '33054,c5ab167cb47c0fd106b06df95e9f7541', // DNSPod token
  };

  // 文件上传
  config.multipart = {
    fileSize: '50mb',
    whitelist: [
      // images
      '.jpg',
      '.jpeg', // image/jpeg
      '.png', // image/png, image/x-png
      '.gif', // image/gif
      '.bmp', // image/bmp
      '.wbmp', // image/vnd.wap.wbmp
      '.webp',
      '.tif',
      '.psd',
      // text
      '.txt',
      '.svg',
      '.js',
      '.jsx',
      '.json',
      '.css',
      '.less',
      '.html',
      '.htm',
      '.xml',
      '.xls',
      '.ppt',
      '.doc',
      '.pptx',
      '.docx',
      '.xlsx',
      '.pdf',
      // tar
      // '.zip',
      '.gz',
      '.tgz',
      '.gzip',
      // video
      '.mp3',
      '.mp4',
      '.avi'
    ]
  };

  config.security = {
    csrf: {
      useSession: false, // if useSession set to true, the secret will keep in session instead of cookie
      ignoreJSON: false, // skip check JSON requests if ignoreJSON set to true
      cookieName: 'csrfToken', // csrf token's cookie name
      sessionName: 'csrfToken', // csrf token's session name
      headerName: 'x-csrf-token', // request csrf token's name in header
      bodyName: '_csrf', // request csrf token's name in body
      queryName: '_csrf' // request csrf token's name in query
    }
  };

  //资源类型
  config.resourceType = {
    IMG: 1, //图片类型
    DOC: 2, //文档类型
    VIDEO: 3, //文档类型
    ZIP: 4, //压缩文件
    VOICE: 5 //声音文件
  };

  //操作记录的类型配置
  config.operationType = {
    target: {
      ARTICLE: 1, //文章
      RESOURCE: 2 //资源
    },
    type: {
      DOWNLOAD: 1, //下载
      VIEW: 2 //浏览
    }
  };

  //对最大页数的配置
  config.pageBean = {
    pageSize: 10
  };

  //文章也模板配置
  config.newlistTemplate = {
    path: './template/',
    1: '1.html', //关于华渔、华渔准则模板
    2: '2.html', //华渔定见模板
    3: '3.html', //华渔视界模板
    4: '4.html', //标准文档模板、高层声音模板
    5: '5.html' //公告列表模板、新闻资讯模板
  };

  //首页模块名称
  config.indexModuleName = ['公告', '华渔定见', '华渔视界'];
  return config;
};
